Herein, related art is discussed to put the invention in context. Related art labeled “prior art” is admitted prior art; related art not labeled “prior art” is not admitted prior art.
Users can navigate the World Wide Web (and networks using Web protocols) by typing in a Web destination in the form of a Uniform Resource Locator (URL). Activating the URL (e.g., by pressing the “Enter” key”) sends a request to a “server”, a computer or group of computers collectively providing services to the requesting computer. The server handles the request, e.g., by activating certain resources and responds, e.g., by sending a code that the client's web browser can use to construct a page for a user to view and interact with. A typical page will include textual and or graphical (including “buttons”); activating a link (e.g., clicking on a button), automates sending a request.
From the user's and browser's point of view, the user is navigating from page to page. As a user moves from page to page, the browser can cache the prior pages on the user's computer. This allows the user to return to a previously viewed page without having to send another request to the server, saving time and bandwidth. Typically, a user can navigate back and forth through cached pages using a back button and a forward button, both standard in web browsers.
While many requests are context independent, some require the server to know the context in which the request was made. Typically, the context is the last page served to the client making the request. Accordingly, the server can track client requests so that it can determine the client's state and thus the context of a request made during that state. However, as web browsers do not inform the server when a user navigates among cached pages, e.g., by pressing the back button, it is possible for the client to be in a state different from the most recent state provided by the server. This can cause the server to respond inappropriately to a request, possibly resulting in confusion, dissatisfaction, and/or economic harm.
Perhaps the most common solution to this problem is to put text in a page warning the user not to press the back button. However, this does not always stop a user, e.g., who does not read everything on the page before doing something that is second nature to most users of web browsers. Some servers serve pages with embedded code (e.g., Javascript) that disables or hides the web browser's back button. However, users may be annoyed to lose their standard navigation tool, especially as it tends to appear more responsive than using links (which, unlike the back button, require a request to and a response from a server). Also, it is difficult to write code that addresses all web browsers. For example, not all browsers execute Javascript or execute the same piece of Javascript with exactly the same results. Also, it is difficult for code to take into account all methods (e.g., including keyboard shortcuts, pop-up menus) of navigating cached pages.